﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using System.IO;
using Microsoft.Security.Application;

namespace InhollandAirPortal {
  public partial class GeboekteReizen : System.Web.UI.Page {
    protected void Page_Load(object sender, EventArgs e) {
      LoadReizen();
    }

		private void LoadReizen() { // Reizen weergeven
			PortalUser myUser = new PortalUser(this.Page.User.Identity.Name);
      StringWriter stringWriter = new StringWriter();

      using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) {
				if (myUser.geboekte_reizen.Count > 0) { // Alleen lijst maken als er reizen geboekt zijn
					writer.AddAttribute(HtmlTextWriterAttribute.Id, "boekingsoverzicht");
					writer.RenderBeginTag(HtmlTextWriterTag.Ul);
				}

				// Actieve reizen (mogelijkheid tot annuleren)
				writer.RenderBeginTag(HtmlTextWriterTag.H3);
				writer.Write("Geboekte reizen");
				writer.RenderEndTag();
        foreach (Boeking Boeking in myUser.geboekte_reizen) {
					if (Boeking.isactief && Boeking.reis.datum >= DateTime.Now) { // Alleen reizen in de toekomst weergeven
						writer.AddAttribute(HtmlTextWriterAttribute.Class, "boeking");
						writer.RenderBeginTag(HtmlTextWriterTag.Li);
						if (Boeking.reis.datum > DateTime.Now) {
							writer.AddAttribute(HtmlTextWriterAttribute.Class, "btnAnnuleer");
							writer.AddAttribute(HtmlTextWriterAttribute.Href, VirtualPathUtility.ToAbsolute("~/AnnuleerBoeking.aspx") + "?BC=" + Encoder.HtmlEncode(Boeking.boekingscode));
							writer.RenderBeginTag(HtmlTextWriterTag.A);
							writer.Write("Annuleren &raquo;");
							writer.RenderEndTag();
						}
						writer.Write("<strong>" + Encoder.HtmlEncode(Boeking.reis.naam) + "</strong> ");
						writer.Write(" - " + Boeking.reis.datum.ToShortDateString());
						writer.Write("<div>Geboekt op: " + Boeking.boekingsdatum.ToShortDateString() + " om " + Boeking.boekingsdatum.ToShortTimeString() + "</div>");
						writer.RenderEndTag(); //end li tag
					}
        }

				// Boekingshistorie
				writer.RenderBeginTag(HtmlTextWriterTag.H3);
				writer.Write("Boekingshistorie");
				writer.RenderEndTag();
				foreach (Boeking Boeking in myUser.geboekte_reizen) {
					if (Boeking.isactief && Boeking.reis.datum < DateTime.Now) { // Alleen reizen in het verleden weergeven
						writer.AddAttribute(HtmlTextWriterAttribute.Class, "boeking");
						writer.RenderBeginTag(HtmlTextWriterTag.Li);
						writer.Write("<strong>" + Encoder.HtmlEncode(Boeking.reis.naam) + "</strong> ");
						writer.Write(" - " + Boeking.reis.datum.ToShortDateString());
						writer.Write("<div>Geboekt op: " + Boeking.boekingsdatum.ToShortDateString() + " om " + Boeking.boekingsdatum.ToShortTimeString() + "</div>");
						writer.RenderEndTag(); //end li tag
					}
				}

				if (myUser.geboekte_reizen.Count > 0) { // Alleen lijst afsluiten als er reizen geboekt zijn
					writer.RenderEndTag();
				}

				// writer plaatsen in cphContent
        Master.FindControl("cphContent").Controls.Add(new LiteralControl(writer.InnerWriter.ToString()));
      }
    }
  }
}